class Solution {
public:
    int countValidSelections(vector<int>& nums) {
        
        int n=nums.size();
        vector<int> f(n+1),g(n+1);
        for(int i=1;i<n;++i){
            f[i]=f[i-1]+nums[i-1];
        }
        for(int i=n-2;i>=0;--i){
            g[i]=g[i+1]+nums[i+1];
        }
        int nRet=0;
        for(int i=0;i<n;++i){
            if(nums[i]==0){
                if(f[i]==g[i]){
                    nRet+=2;
                }
                else if(abs(f[i]-g[i])==1){
                    nRet+=1;
                }
            }
        }

        return nRet;
    }
};
